package com.scz.dto.log;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Description: TODO
 * @Author: yanruian
 * @Create: 2025-02-01 17:50
 * @Version: 1.0
 **/
@NoArgsConstructor
@Data
public class BaseLogDto {


    /**
     * eventId
     */
    @JSONField(name = "event_id")
    private String eventId;
    /**
     * userId
     */
    @JSONField(name = "user_id")
    private String userId;
    /**
     * eventType
     */
    @JSONField(name = "event_type")
    private String eventType;
    /**
     * timestamp
     */
    @JSONField(name = "timestamp")
    private String timestamp;
    /**
     * platform
     */
    @JSONField(name = "platform")
    private String platform;
    /**
     * sessionId
     */
    @JSONField(name = "session_id")
    private String sessionId;
    /**
     * ipAddress
     */
    @JSONField(name = "ip_address")
    private String ipAddress;
    /**
     * deviceInfo
     */
    @JSONField(name = "device_info")
    private DeviceInfoDTO deviceInfo;
    /**
     * eventDetails
     */
    @JSONField(name = "event_details")
    private JSONObject eventDetails;

    /**
     * DeviceInfoDTO
     */
    @NoArgsConstructor
    @Data
    public static class DeviceInfoDTO {
        /**
         * deviceType
         */
        @JSONField(name = "device_type")
        private String deviceType;
        /**
         * os
         */
        @JSONField(name = "os")
        private String os;
        /**
         * browser
         */
        @JSONField(name = "browser")
        private String browser;
    }

}
